// 统计数据

import r from '@/utils/request';
import type { ResponseType } from '../types';

enum API {
    countGetCompanyCount = '/count/getCompanyCount', // 各城市机构数量统计
    countGetElderlyCount = '/count/getElderlyCount', // 各省份老人你数量统计
    countList = '/count/list', // 机构、老人、床位数量统计
    countGetAgeGroup = '/count/getAgeGroup', // 各年龄段数量统计
    countGetOrderCount = '/count/getOrderCount', // 最近12个月入院数量统计
    countGetDisCount = '/count/getDisCount', // 最近12个月出院数量统计
    countGetResCount = '/count/getResCount', // 最近12个月预定数量统计 
}

// 1
// 各城市机构数量统计返回值
type countGetCompanyCountRes = ResponseType<{
    count: number;
    name: string;
    lngLat: string;
}>

// 各城市机构数量统计接口
export function countGetCompanyCountAPI(): Promise<countGetCompanyCountRes> {
    return r.get(API.countGetCompanyCount)
}

// 2
// 各省份老人你数量统计返回值
type countGetElderlyCountRes = ResponseType<{
    map(arg0: (item: any) => any): unknown;
    sort(arg0: (a: any, b: any) => number): never[];
    count: number;
    name: string;
}>

// 各省份老人你数量统计接口
export function countGetElderlyCountAPI(): Promise<countGetElderlyCountRes> {
    return r.get(API.countGetElderlyCount)
}

// 3
// 机构、老人、床位数量统计返回值
 export type countListRes = ResponseType<{
    bedCounts: number;
    companyCounts: number;
    elderlyCounts: number;
}>

// 机构、老人、床位数量统计接口
export function countListAPI(): Promise<countListRes> {
    return r.get(API.countList)
}

// 4
// 各年龄段数量统计返回值
type countGetAgeGroupRes = ResponseType<{
    count: number;
    ageGroup: string;
}>

// 各年龄段数量统计接口
export function countGetAgeGroupAPI(): Promise<countGetAgeGroupRes> {
    return r.get(API.countGetAgeGroup)
}

// 5
// 最近12个月入院数量统计返回值
type countGetOrderCountRes = ResponseType<{
    count: number;
    name: string;
}>

// 最近12个月入院数量统计接口
export function countGetOrderCountAPI(): Promise<countGetOrderCountRes> {
    return r.get(API.countGetOrderCount)
}

// 6
// 最近12个月出院数量统计返回值
type countGetDisCountRes = ResponseType<{
    count: number;
    name: string;
}>

// 最近12个月出院数量统计接口
export function countGetDisCountAPI(): Promise<countGetDisCountRes> {
    return r.get(API.countGetDisCount)
}

// 7
// 最近12个月出院数量统计返回值
type countGetResCountRes = ResponseType<{
    count: number;
    name: string;
}>

// 最近12个月出院数量统计接口
export function countGetResCountAPI(): Promise<countGetResCountRes> {
    return r.get(API.countGetResCount)
}